package com.cd.music.dao;

import com.cd.music.dto.UserDto;
import com.cd.music.model.User;

import java.util.List;
import java.util.Map;

/**
 * @author yxl 余秀良
 * @version 1.0
 * @description: 用户信息操作接口
 * @date 2018年02月27日 下午1:56
 * @address: 四川成都
 */
public interface UserDao {
    /**
     * 用户登录
     *
     * @param dto 　参数
     * @return 登录成功返回登录者信息，登录失败返回null
     */
    UserDto login(UserDto dto);

    /**
     * 查询用户是否是管理员
     *
     * @param dto 参数
     * @return 查询的用户信息
     * @author yxl 余秀良
     * @version 1.0
     * @description: 查询用户是否是管理员
     * @date 2018年03月01日 下午1:42
     * @address: 四川成都
     */
    UserDto selectUserIsAdmin(UserDto dto);

    /**
     * 　根据id删除
     *
     * @param id 　id
     * @return 受影响行数
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 新增
     *
     * @param record 　用户
     * @return 受影响行数
     */
    int insertSelective(User record);

    /**
     * 添加用户信息
     *
     * @param user User
     * @return int
     */
    int addUser(UserDto user);

    /**
     * 用户列表
     *
     * @param dto 参数
     * @return 用户信息列表
     */
    List<Map> userList(UserDto dto);

    /**
     * 查询有效用户总数
     *
     * @return 返回用户总数
     */
    long queryUserTotal();

    /**
     * 查询用户信息
     *
     * @param phone 查询条件
     * @return 返回用户信息
     */
    UserDto queryUser(String phone);

    /**
     * 查询
     *
     * @param id 　id
     * @return 用户
     */
    UserDto selectByPrimaryKey(Integer id);

    /**
     * 修改
     *
     * @param record 　用户
     * @return 受影响行数
     */
    int updateByPrimaryKeySelective(User record);

}